using System;

class ToeplitzMatrixChecker
{
    // 实现算法逻辑的方法，用于判断矩阵是否为托普利茨矩阵
    static bool IsToeplitzMatrix(int[,] matrix)
    {
        int rows = matrix.GetLength(0);
        int cols = matrix.GetLength(1);

        // 遍历矩阵，检查每条对角线
        for (int i = 1; i < rows; i++)
        {
            for (int j = 1; j < cols; j++)
            {
                // 如果当前元素和其左上角元素不相等，则不是托普利茨矩阵
                if (matrix[i, j] != matrix[i - 1, j - 1])
                {
                    return false;
                }
            }
        }

        return true;
    }

    // 输入输出的方法
    static void InputOutput()
    {
        try
        {
            Console.Write("请输入矩阵的行数: ");
            int rows = int.Parse(Console.ReadLine());

            Console.Write("请输入矩阵的列数: ");
            int cols = int.Parse(Console.ReadLine());

            int[,] matrix = new int[rows, cols];

            Console.WriteLine("请逐行输入矩阵的元素，每行元素用空格分隔:");
            for (int i = 0; i < rows; i++)
            {
                string[] line = Console.ReadLine().Split(' ');
                for (int j = 0; j < cols; j++)
                {
                    matrix[i, j] = int.Parse(line[j]);
                }
            }

            // 调用 IsToeplitzMatrix 方法判断矩阵是否为托普利茨矩阵
            bool result = IsToeplitzMatrix(matrix);

            Console.WriteLine($"该矩阵是否为托普利茨矩阵: {result}");
        }
        catch (FormatException)
        {
            Console.WriteLine("输入无效，请输入有效的整数。");
        }
        catch (IndexOutOfRangeException)
        {
            Console.WriteLine("输入的元素数量与矩阵的列数不匹配。");
        }
    }

    static void Main()
    {
        // 调用输入输出方法
        InputOutput();
    }
}